package com.cn.wanxi.util;

import com.cn.wanxi.servlet.HomeServlet;
import com.cn.wanxi.servlet.Persion;

public class MyHelp {
    private int a;
    /**
     * 1.类与类之间的关系
     * http://www.360doc.com/content/18/1120/13/15991787_796075663.shtml
     * 2.UML数据建模
     *   1）用例图
     *   2）流程图
     *   3）时序图
     *   4）类图
     * 瀑布开发模型 ---时间先后  慢  效率
     * 同时进行  前     username
     *          后端    userName
     *          数据库  user_name  user(name,id,sex)
     *          接口连接 --定义接口规范  面向对象{"key":"value"}
     *          前后端相互传值--前端以json格式进行传值
     *          后端以集合或者数组进行传值
     * 敏捷开发模型
     * 3.注册页面主要想要大家学会表单？表单的数据类型
     * 4.正则表达式
     * 5.js的基本用法
     *
     */

    /**
     * 2021-2-2
     * 注册
     * 1.html页面 、js判断
     * 2.访问后台  两种形式 ，form表单  submit提交 ----Ajax
     * 3.后台代码---servlet
     * 取值，封装对象  调用service  得到返回值  返回jsonobject对象
     * 4.service   逻辑判断  根据数据层判断是否插入成功
     * 5.dao    封装sql语句   调用工具类JDBC
     * 6.手写JDBC
     *  * 访问数据库的步骤
     *  * 1.加载驱动   mysql驱动--jar包--什么时候加载？
     *  * 2.取得数据库链接
     *  * 3.封装sql语句（编译sql语句）
     *  * 4.执行sql语句
     *  * 5.返回结果
     *  测试 项目是否正确
     *
     */
    /**
     * 2021-2-3
     * 数据库操作步骤
     * 1.写页面   html,css,js
     * 2.通过按钮进行访问后台---事件  方法
     *      需要带数据
     *      let data={username:$("#username").val(),password:$("#password").val()};
     *      $.ajax（{
     *          url:'/register',
     *          data:data,
     *          dataType:"json",
     *          type:"post",
     *          success:function(data){后台传递给前端的数据
     *                  if(data=="success"){
     *                      //如果注册成功，应该跳转到登录页面进行登录
     *                  }else{
     *                      alert("很遗憾，你的注册失败，请重写注册");
     *                  }
     *          }
     *
     *      }）
     * 3.servlet层  通过注解的地址和ajax里面url相对应
     *    1.取得页面的数据
     *    2.将页面的数据进行封装
     *    3.调用service
     *    4.得到返回结果
     *    5.将返回结果返回到前端
     * 4.service层  逻辑关系
     *      调用数据实现层
     *      返回最后的增加结果，失败 或者成功
     * 5.数据实现层 dao
     *      1.封装sql语句
     *      2.调用工具类的新增方法，同时返回结果
     * 6.JDBC
     *      1.加载驱动
     *      2.获取链接
     *      3.编译sql
     *      4.执行sql
     *      5.返回执行结果
     */
    /**
     * 登录的逻辑思路
     * 1.验证码
     *      1）画一个图片
     *      2）画一个背景颜色
     *      3）拼接验证码，将验证码画到图片上
     *      4）画干扰线 目的就是为了不让工具读取
     * 2.后台servlet
     *      1）拿到js数据
     *      2）封装数据
     *      3）调用逻辑层
     *      4）返回结果
     * 3.service
     *      1）判断验证码是否正确  注意：逻辑应该在服务层而不是在servlet层
     *      2）根据用户名和密码查询
     *      3）注意：得到的应该是查询结果而不是布尔值
     * 4.dao
     *      1）封装sql语句
     *      2）查询数据库并得到结果集 ResultSet
     *      3）现在有两个地方都是一样的代码，所以需要提取公共代码
     *
     */
    /**
     * 管理页面
     * css样式设置
     * calc css的函数
     * vh   浏览器高度
     * vw  浏览器宽度
     * show,hide,toggle
     * $(obj).next().show();//展示 显示
     *  $(obj).parent().siblings().children("div>div:nth-child(2)").hide();
     *  $("#top")load(""/html/login.html);
     */
    /**
     * 2021、2、23
     * xadmin
     * 下载xadmin
     * 引入
     * 修改登录页面
     *  增加验证码
     *  正则表达式
     *  想用form的提示  submit
     *  想用自己的正则表达式 用  return  false  或者直接将submit 修改成button
     * 管理页面
     *   页面加载的时候要执行将登录名赋值
     *   用户管理页面
     *   查询所有
     *   ajax
     *   setData
     *   字符串拼接
     *   后台代码的编写
     *   servlet
     *   service
     *   dao  封装list数据
     *
     */
    /**
     * 2021-2-24
     * 用户查询layui的方式取得数据
     * 1.复制member-list1.html，修改js和css
     * 2.登录layui官网，查https://www.layui.com/demo/
     * 表格：用户查询所有数据
     * <table class="layui-hide" id="demo" lay-filter="test"></table>
     *操作：查看，编辑，删除
     * <script type="text/html" id="barDemo">
     *   <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">查看</a>
     *   <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
     *   <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
     * </script>
     * 3.修改js
     *   table.render({
     *             elem: '#table_user',//找到表格的id
     *             url: '/back/user/findAll',//对应后台的接口地址
     *             parseData: function (res) { //res 即为原始返回的数据，就是以前的data
     *                 console.log(res);
     *                 // res.data.code=0;//必须为0
     *                 return {
     *                     "code": 0, //解析接口状态
     *                     // "msg": res.data.msg, //解析提示文本
     *                     // "count": res.data.total, //解析数据长度
     *                     "data": res.list //解析数据列表
     *                 };
     *             },
     * 4.修改表头和每一列的属性，一定和后台model里面的属性值一直
     *  {
     *                     field: 'id',//对应model的属性
     *                     title: 'ID',//标题
     *                     width: 80,//宽度，如果不设置，默认
     *                     sort: true,//排序
     *                     fixed: true//对齐
     *  }
     *
     *  查询赋值
     *  多了一个弹出框xadmin.open('会员查看', 'member-edit.html', 600, 400);
     *  页面之间相互传值
     *   sessionStorage.setItem("userId", data.id);
     *   自定义格式数据
     *   和lay-verify="username"
     *   有两种修改方式：
     *   1.form.js 里面修改
     *   2.直接重写：
     *    form.verify({
     *                 username: [/^[a-zA-Z0-9_-]{4,16}$/,"fasdfas"],
     */
    /**
     * 2021-2-25
     * 编辑：
     * 1.查询当前用户名是否存在
     * 删除
     * 弹出框
     * 手写table
     *
     */
    /**
     * 2020-2-26
     * 写后台代码的逻辑
     * 增删改查crud
     * 前端Ajax的提取
     */
    /**
     * 2021-3-2
     * 图片上传
     * 1.下载两个包
     * 2.js代码数据用formdata
     * 3.ajax  多；了        contentType: false,
     *         processData: false,
     * 4.在servlet里面封装了一个对象LoadImg
     * 5. 普通表达取值
     * String name = fileItem.getFieldName();// name属性值
     *  String value = fileItem.getString("utf-8");// name对应的value值
     *  req.setAttribute(name, value);
     *  6.文件格式：
     *      1）需要重新命名文件名-避免文件名重复
     *      2）需要将文件复制到out文件里面才能保证查询时同时更新
     *  7.富文本上传图片的时候和文件一样，直接调用
     *
     */
    /**
     * 2021-3-2
     * 模糊查询
     * 1.修改sql语句
     *   注意：判断是否为空或者为null    什么时候判断为空什么时候判断为null？
     *   find_in_set
     * 2.修改servlet
     * 3.修改js代码findAll，添加参数
     * 4.添加html代码
     */
    /**
     * 2021-3-4
     * 分页
     * limit  (curPage-1)*pageSize,pageSize
     * 后台代码：
     *   1）修改数据实现层的sql语句
     *   2）增加一个pageModel
     *   3）类与类之间的关系
     *   4）修改servlet里面的代码 ，多了一个分页的封装
     * 前台代码：
     *   1）增加分页的页面：提取出来公共页面
     *   2）css和js都是分开写
     *   3）最终目的都是得到当前多少页和每页多少条
     *   4）点击查询按钮的操作
     *   5）上一页的时候在第一页时做一个提醒，
     *   6）下一页是尾页的时候也要做一个提醒
     *   7）将所有的操作合并到一个方法里面
     *   8）注意的地方：总条数显示不了，是因为页面加载顺序有关
     *   有可能分页加载需要一分钟，同时，findAll查询可能只需要一秒，
     *   赋值总条数的时候分页还没有加载出来
     */
    /**
     * 2021-3-5
     * 安全认证  session认证
     * 1.前端---每一个访问页面的用户都需要判断是否已经登录
     * 提取到myajax公共方法，注意：不需要验证的页面不用引用myajax.js
     * 需要将登录名放在myajax里面
     * 有两种方式
     * 2.后台-----
     * myfilter
     *    1）首先需要知道访问的地址
     *    2）判断哪些地址是必须需要登录
     *    3）如果需要登录，则判断是否已经登录
     *    4）如果不需要登录直接放行
     *     filterChain.doFilter(req, resp);//放行
     *
     * 注意：如果访问后台的地址是文件，则不能进入myfilter的用户登录判断
     * 因为这里会用到req，req对于文件来说只能用一次，所以文件的地址不能以/back/开始
     * 需要单独对文件进行登录判断，同时会有很多接口都会有文件上传，
     * 所以这里直接在工具类里面判断是否已经登录
     */
}

